MacのTerminalでsudo実行時にタッチIDを使用する方法
こんにちは、CX事業本部の夏目です。
MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。
使う方法
/etc/pam.d/sudo
にauth sufficient pam_tid.so
を追加します。
書き込みには管理者権限が必要になるので次のようにして編集します。
# 自分の環境では最初管理者でも書き込みができないようになってたので、できるようにする $ sudo chmod +w /etc/pam.d/sudo $ sudo vi /etc/pam.d/sudo
もともとはこんな感じになっていると思うので、
# sudo: auth account password session auth sufficient pam_smartcard.so auth required pam_opendirectory.so account required pam_permit.so password required pam_deny.so session required pam_permit.so
こんな感じにします。
# sudo: auth account password session auth sufficient pam_tid.so auth sufficient pam_smartcard.so auth required pam_opendirectory.so account required pam_permit.so password required pam_deny.so session required pam_permit.so
2行目に追加しています。
あとはTerminalを一度終了させて再度起動すれば、sudo実行時にタッチIDが使えるようになります。
iTermを使っている人は
iTermを使ってる人は次の設定をする必要があります。
iTermのPreferencesのAdvancedタブでsudo
と入れて検索すると、
Allow session to survice logging out and back in.
という設定項目が出てきます。
コレをNo
にします。
あとはiTermを一度終了させてから、再度起動するとsudo実行時にタッチIDを使用することができます。
tmuxを使っている人は
tmuxなどのターミナルマルチプレクサを使用している場合はこれだけでは動かせません。
これに対処するために、pam_reattach
というPAMモジュールを作った人がいます。
次の手順でインストールします。
# インストール(ビルド)にはcmakeが必要なのでHomeBrewでインストールします $ brew install cmake $ git https://github.com/fabianishere/pam_reattach $ cd pam_reattach $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local $ make install
これで /usr/local/lib/pam/pam_reattach.so
にインストールされます。
後は /etc/pam.d/sudo
にauth optional pam_reattach.so
を追記します。
だいたいこんな感じです。
# sudo: auth account password session auth optional pam_reattach.so auth sufficient pam_tid.so auth sufficient pam_smartcard.so auth required pam_opendirectory.so account required pam_permit.so password required pam_deny.so session required pam_permit.so
あとはシェルにログインしなおせば、sudo実行時にタッチIDを使用することができます。
/etc/pam.d/sudo
のアップデートをスクリプト化した人がいました
curl -sL https://gist.github.com/kawaz/d95fb3b547351e01f0f3f99783180b9f/raw/install-pam_tid-and-pam_reattach.sh | bash
これを実行すると、pam_reattach.so
のインストールと/etc/pam.d/sudo
の更新までしてくれます。
まとめ
Macの便利なタッチIDをsudo実行時にも使用できるようにしてみました。
sudoでパスワード打つの面倒な人は仕込んでみてください。